#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (a); i >= (b); i--)
#define endl '\n'
const int N = 25;

int n, m;
int a[N];
int sum[N];
int ans;
void dfs(int s, int cnt) {
  if (cnt >= ans) return;
  if (s == n + 1) {
    ans = min(ans, cnt);
    return;
  }
  rep(i, 1, cnt) {
    if (sum[i] + a[s] <= m) {
      sum[i] += a[s];
      dfs(s + 1, cnt);
      sum[i] -= a[s];
    }
  }
  sum[cnt + 1] += a[s];
  dfs(s + 1, cnt + 1);
  sum[cnt + 1] -= a[s];
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> n >> m;
  rep(i, 1, n) cin >> a[i];
  sort(a + 1, a + n + 1, greater<int>());
  ans = n;
  dfs(1, 0);
  cout << ans;
  return 0;
}